// Copyright  2011, 2012 Petr TALLA. [petr.talla@gmail.com]
// This file is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This file is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY;  without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
// [http://www.gnu.org/copyleft/lesser.html]
//=============================================================================
#pragma once

#include "./TcArgCol.h"

class TcArgVal;
class parseStruct;

#define XCALL(X) TcCmdTransl::xcall(X, true);
#define EXECUTE(X) TcCmdTransl::xcall(X, false);

//=============================================================================
class TcCmdTransl {
//=============================================================================
public:
//<CONSTRUCTION>
    TcCmdTransl(const char* script);
//<METHODS>
    static void xcall(const char* cmd, bool late);
    TcArgCol& result(void) {return result_;}
//=============================================================================
protected:
//<DATA>
    TcArgCol result_;
//<INTERNALS>
    void parseLines_(const char* script, TcArgCol* result);

    bool isEoWord_(unsigned char ch);
    bool isEoCmd_(unsigned char ch);
    void getWord_(parseStruct& ps);
    bool passSeparators_(parseStruct& ps);

    friend class TcHtmlView; //Temporary
};

